//
//  LogicData.cpp
//  firebkball
//
//  Created by flydy on 2018/5/27.
//
//

#include "LogicData.h"
USING_NS_CC;

static LogicData *logicData = nullptr;

LogicData* LogicData::getInstance() {
    if (!logicData) {
        logicData = new (std::nothrow) LogicData;
        logicData->init();
    }
    
    return logicData;
}
LogicData::~LogicData() {
    logicData = nullptr;
    CCLOG("~LogicData");
}
bool LogicData::init() {
    resetFireBallStatus();
    return true;
}

void LogicData::resetFireBallStatus() {
    hasFallIn = false;
    status = 1;
	collStatusFlagsIndex = 0;
	ballMaxHeight = 0;
	int i = 0;
	for (;i < collStatusFlagsLen; i++) {
		collStatusFlags[i] = 0;
	}
}

int LogicData::addCollStatusFlags(int flag) {
    CCLOG("addCollStatusFlags=%d", flag);
	if (collStatusFlagsIndex > collStatusFlagsLen - 1) {
		return 0;
	}
	for (int i=0; i < collStatusFlagsLen; i++) {
		if (collStatusFlags[i] == flag) {
			return 2;
		}
	}
	collStatusFlags[collStatusFlagsIndex++] = flag;
	return 1;
}

void LogicData::printInfo() {
    CCLOG("球最高点： %f, 碰撞情况：(1篮筐， 2篮板， 3进篮)：%d,%d,%d ",ballMaxHeight, collStatusFlags[0], collStatusFlags[1], collStatusFlags[2]);
}
